Businesses employ large scale data processing systems for storing and processing their business critical data. FIG. 1 illustrates relevant components of an exemplary data processing system 10. Data processing system 10 includes host (e.g., server computer system) 12 coupled to data storage subsystems 16-20 via a Fibre Channel switching fabric 22. For purposes of explanation, FIG. 1 shows switching fabric 22 consisting of a single switch 24 that connects hosts 12 and 14 to data storage subsystems 16-20, it being understood that the term switching fabric should not be limited thereto.
Each of the data storage subsystems 16-20 includes several physical storage devices. For purposes of explanation, data storage subsystems 16-20 are assumed to include several hard disks, it being understood that the term physical storage device should not be limited to hard disks. Data storage subsystems 16-20 may take different forms. For example, data storage subsystem 16 may consist of “Just a Bunch of Disks” (JBOD) connected to an array controller card. Data storage subsystem 18 may consist of an intelligent disk array. Data storage subsystem 20 may consist of a block server appliance. For purposes of explanation, each of the data storage subsystems 16-20 will take form in a disk array, it being understood that the term data storage subsystem should not be limited thereto.
As noted, each of the disk arrays includes several hard disks. The hard disk is the most popular permanent storage device currently used. A hard disk's total storage capacity is divided into many small chunks called physical memory blocks. For example, a 10 data byte hard disk contains 20 million physical memory blocks, with each block able to hold 512 bytes of data. Any random block can be written or read in about the same time, without having to read or write other physical memory blocks first. Once written, a physical memory block continues to hold data even after the hard disk is powered down. Hard disks are quite reliable.
Host 12 includes application 26 and a data storage management system 28 executing on one or more processors. Volume Manager™ provided by VERITAS Software Corporation of Mountain View, Calif., is an exemplary storage manager. Storage managers can perform several functions. More particularly, storage managers can create virtual storage devices (hereinafter storage objects) by aggregating hard disks such as those of disk arrays 16-20, underlying virtual storage devices, or both. FIG. 2 shows a visual representation of storage object VB consisting of an array of nmax logical memory blocks that store or are configured to store data. While it is said that the logical memory blocks store or are configured to store data, in reality the data is stored in physical memory blocks of hard disks allocated directly or indirectly to the storage object.
Storage objects aggregated from hard disks of disk arrays 16-20 can themselves be aggregated to form storage objects called logical data volumes. Logical data volumes are typically presented for direct or indirect use by an application such as application 26 executing on host 12. In other words, an application can generate read or write transactions to read or write data to logical memory blocks of a data volume not knowing that the data volume is an aggregation of storage-level storage objects, which in turn are aggregations of hard disks.
Properties of storage objects depend on how the underlying storage objects or hard disks are aggregated. In other words, the method of aggregation determines the storage object type. In theory, there are a large number of possible methods of aggregation. The more common forms of aggregation include concatenated storage, striped storage, mirrored storage, or RAID storage. The storage types described above can also be compounded to yield still further storage types. For example, a storage object can be formed as mirrored stripes or striped mirrors. A more thorough discussion of how storage objects or hard disks can be aggregated and their advantages can be found within Dilip M. Ranade [2002], “Shared Data Clusters” Wiley Publishing, Inc., which is incorporated herein by reference in its entirety.
Storage managers are capable of creating storage object descriptions that describe the relationship between the storage object and its underlying storage objects or hard disks. These storage object descriptions can be used to map a logical memory block of the corresponding storage object to one or more logical memory blocks of one or more underlying storage objects or to one or more physical memory blocks of one or more hard disks. Storage managers can use storage object descriptions to translate data access transactions directed to one storage object into one or more transactions to access data of one or more underlying storage objects or hard disks. Consider a mirrored storage object O aggregated from two underlying hard disks d1 and d2 of disk arrays 16 and 18, respectively. Storage object O consists of nmax logical memory blocks. Presume that a transaction is generated by some application, such as application 26, to write data D to logical memory block 3 of storage object O. A storage manager, such as storage manager 28, can access a description for storage object O in response to receiving the transaction for writing data D. From this description, storage manager 28 can learn that O is a two-way mirrored storage object and that logical memory block 3 is mapped to, for example, physical memory blocks 565 and 7668 in hard disks d1 and d2, respectively. Storage manager 28 generates and sends separate transactions to write data D to blocks 565 and 7668 in hard disks d1 and d2, respectively, of disk arrays 16 and 18, respectively. The separate transactions are transmitted via switch 24. It is noted that switch 24 may have a copy of the description for storage object O. Switch 24 may send the separate transactions to their appropriate disk array destinations according to the description for storage object O.